<?php

/**
* @property string[] $defaultParams tên các tham số mặc định trên URL sẽ được giữ lại khi create Url
*/
class BKUrlManager extends CUrlManager
{
	protected $_defaultParams=array();

	function setDefaultParams($v)
	{
        assert('is_array($v) || is_string($v)');
        $this->_defaultParams = is_array($v) ? $v : array($v);
	}

	/**
	* @return string[]
	*/
	function getDefaultParams()
	{
    	return $this->_defaultParams;
	}

	/**
	* Thêm các param mặc định vào
	*
	* @param array $paramsName
	*/
	function addDefaultParams($paramsName)
	{
		$this->_defaultParams = $this->_defaultParams + $paramsName;
	}

	/**
	* @return array
	*/
	function getDefaultParamsValue()
	{
        $rs = array();
        $r = Yii::app()->getRequest();

        foreach ($this->getDefaultParams() as $name) {
			$v = $r->getQuery($name);
			if (!empty($v)) $rs[$name] = $v;
        }

        return $rs;
	}

	/**
	* @inheritdoc
	*/
	public function createUrl($route,$params=array(),$ampersand='&')
	{
		$params = CMap::mergeArray(
			$this->getDefaultParamsValue(),
            $params
		);

		return parent::createUrl($route,$params,$ampersand);
	}
}